perm filename CONVER.SAI[11,ALS] blob
sn#060664 filedate 1973-08-31 generic text, type T, neo UTF8
00010 BEGIN "CONVER"
00020 DEFINE ⊂="COMMENT"; ⊂ 8/24/73 Converts OLDPH headers into NEWPH format;
00030 DEFINE ⊃="⊂"; ⊂ Convert to "" to LIST ON LINE;
00040
00050 REQUIRE "BLOCKS.HDR[4,ALS]" SOURCE_FILE;
00060 INTEGER ARRAY LFILE[0:'177];
00070 INTERNAL INTEGER ARRAY INDATA[0:255];
00080 INTERNAL INTEGER H,I,J,K,L,M,N,P,NF;
00090 INTERNAL INTEGER FLAG,CFLAG,RFLAG,UPCNT,TABTOT;
00100 INTERNAL INTEGER SEGTOT,RL,EOF,EOFA,EOFB,BRK;
00110 INTEGER CHAN1,CHAN2,CHAN3,CHAN4,CHAN5,CHAN6,CHANX;
00120 STRING READ1,READ2,READ3,FILEL,FILEI,TFILE,TFILEI,FILLST,PREHINT;
00130 INTEGER ARRAY OLDPH,NEWPH[0:63];
00140 BOOLEAN ER;
00010 STDBRK(1);
00020 SETBREAK(14,"∃",NULL,"INS");
00030 SETBREAK(15,'11&'12&'14&'15&'40,NULL,"INS");
00040 SETBREAK(16,'56,NULL,"INA");
00050
00060 FILEL←"LIST28";
00070 FILEI←"TOO1.DAT[1,THO]";
00080 CHAN1←1; CHAN2←2; CHAN3←3; CHAN4←4; CHAN5←5; CHAN6←6;
00090
00100 CLOSE(CHAN2); OPEN(CHAN2,"DSK",1,2,0,3500,BRK,EOFA);
00110 LOOKUP(CHAN2,"CONVRT.TXT",ER); READ1←INPUT(CHAN2,14);
00120 RELEASE(CHAN2);
00130
00140 FOR I←0 STEP 1 UNTIL 63 DO BEGIN
00150 READ2←SCAN(READ1,1,J); IF READ2="" THEN DONE;
00160 READ3←SCAN(READ2,15,J);
00170 OLDPH[I]←CVSIX(READ3); ⊂ OUTSTR(CVXSTR(OLDPH[I])); ⊂ OUTSTR(TB);
00180 NEWPH[I]←CVASC(SCAN(READ2,15,J)); ⊂ OUTSTR(CVSTR(NEWPH[I])); ⊂ OUTSTR(TB);
00190 END;
00200 FILEL←STRIN("Data file list (LIST28) = ");
00210 IF FILEL="" THEN FILEL←"LIST28";
00220 CLOSE(CHAN5); OPEN(CHAN5,"DSK",1,2,0,3500,BRK,EOFA);
00230 LOOKUP(CHAN5,FILEL,ER);
00240 WHILE ER DO BEGIN OUTSTR(CRLF&"Can't find "&FILEL&" File = ");
00250 LOOKUP(CHAN5,FILEL←INCHWL,ER); END;
00260 FILLST←INPUT(CHAN5,14); EOFA←0; RL←0;
00270 WHILE EOFA=0 DO BEGIN "LISTREAD"
00280 FILEI←SCAN(FILLST,1,J); IF FILEI="" THEN DONE;
00290
00300 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00310 LOOKUP(CHAN1,FILEI,ER);
00320 IF EOF≠0 THEN DONE;
00330 ARRYIN(CHAN1,LFILE[0],'200); ⊂ Input header;
00340 SEGTOT←(LFILE[0]*6)%256;
00350 OUTSTR(FILEI&" "&CVS(SEGTOT)&" ");
00360 ⊂ FOR I←0 STEP 1 UNTIL 127 DO OUTSTR(CVOS(LFILE[I])&TB);
00370 IF RL≠2 THEN RL←RL+1 ELSE BEGIN OUTSTR(CRLF); RL←0; END;
00380
00390 CLOSE(CHAN2); OPEN(CHAN2,"DSK",0,0,10,0,0,EOFB);
00400 READ2←FILEI;
00410 READ1←SCAN(READ2,16,J)&"HDR"; ENTER(CHAN2,READ1,0);
00420 FOR I←21 STEP 1 UNTIL 127 DO BEGIN
00430 IF LFILE[I]=0 THEN IF I>21 THEN DONE ELSE BEGIN OUTSTR("No data");
00440 INCHWL; DONE; END;
00450 K←LDB(POINT(12,LFILE[I],11)) LSH 24;
00460 ⊃ OUTSTR(CVXSTR(K)&TB);
00470 FOR J←0 STEP 1 UNTIL 63 DO IF OLDPH[J]=K THEN DONE ELSE
00480 IF OLDPH[J]=0 THEN BEGIN
00490 OUTSTR("There is no new symbol for "&CVXSTR(K)&". TYPE ONE ");
00500 READ1←INCHWL; OLDPH[J]←K; NEWPH[J]←CVASC(READ1); END;
00510 K←LDB(POINT(12,LFILE[I],23)); L←LDB(POINT(12,LFILE[I],35));
00520 LFILE[I]←NEWPH[J];
00530 DPB(K,POINT(14,LFILE[I],27)); DPB(L,POINT(8,LFILE[I],35));
00540 OUT(CHAN2,CVSTR(NEWPH[J])&TB&CVS(LDB(POINT(14,LFILE[I],27)))&
00550 TB&CVS(LDB(POINT(8,LFILE[I],35)))&CRLF);
00560 ⊃ OUTSTR(CVSTR(NEWPH[J]));
00570 ⊃ OUTSTR(TB&CVS(LDB(POINT(14,LFILE[I],27)))&
00580 TB&CVS(LDB(POINT(8,LFILE[I],35)))&CRLF);
00590 END;
00600 CLOSE(CHAN2);
00610
00620 READ2←FILEI;
00630 READ1←SCAN(READ2,16,J)&"T01";
00640 OUTSTR(READ1&TB);
00650 OPEN(CHAN4,"DSK",'10,0,10,0,0,EOFB);
00660 ENTER(CHAN4,READ1,0);
00670 ARRYOUT(CHAN4,LFILE[0],'200);
00680 WHILE EOF=0 DO BEGIN
00690 FOR I←0 STEP 1 UNTIL 255 DO INDATA[I]←0;
00700 ARRYIN(CHAN1,INDATA[0],256); J←0;
00710 FOR I←0 STEP 1 UNTIL 255 DO J←J+INDATA[I]; IF J=0 THEN DONE;
00720 ARRYOUT(CHAN4,INDATA[0],256); END; CLOSE(CHAN1); CLOSE(CHAN4);
00730 END "LISTREAD";
00740 RELEASE(CHAN1); RELEASE(CHAN2); RELEASE(CHAN3); RELEASE(CHAN6);
00750
00760 END "CONVER";